package com.leha.mp.core.services;

import com.leha.mp.core.Utils.Page;
import com.leha.mp.core.entity.mybatis.*;
import com.leha.mp.core.entity.vo.*;

import java.sql.Timestamp;
import java.util.List;

public interface AppDoctorServices {
    DoctorLoginVO saveInfo(Integer appId, Integer uid, String sessionKey, String encryptedData, String iv);
    DoctorLoginVO enter(Integer appId, String code);
    DoctorRichInfoVo getDoctorRichInfo(Integer did, Integer uid);
    DoctorBaseInfoVo getDoctorBaseInfo(Integer did);
    PlConsulting genVipConsulting(Integer userId, Integer productId, Integer doctorId, String extraData);

    DoctorSrvTimeVo getDoctorSrvTimes(Integer doctorId);
    Boolean acceptConsulting(Integer doctorId, Integer consultId);

    List<DoctorScheduleVo> getDoctorSchedule(Integer doctorId, String beginTime, String endTime);

    List<UserCaseVo> getMyConsulting(Integer doctorId, Integer type, Page page);

    boolean rejectConsulting(Integer doctorId, Integer consultingId);

    List<PatientVo> getMyPatients(Integer doctorId);

    Boolean updateDoctorServis(Integer doctorId, Integer type, Integer op);

    Boolean updateDoctorServisTimes(Integer doctorId, Integer index, String values);

    List<PlDoctorAvailableTime> getDoctorSercesTimes(Integer doctorId);

    List<PlProduct> getDoctorSercesStatus(Integer doctorId);

    List<PlOrder> getDoctorOrders(Integer doctorId, Integer type);

    List<PatientVo> getNeedCheckedMyCase(Integer doctorId);

    List<PlVip> getMyVips(Integer doctorId, Integer type);

    Boolean acceptVipRequest(Integer doctorId, Integer vipId, Integer op);

    Boolean acceptCaseRequest(Integer doctorId, Integer vipId, Integer op);

    void updateAllDoctorStatics();

    void refundVips(Integer userId,Integer doctorId, Byte consultingType);

    void updateDoctorStatics(Integer doctorId);

    boolean cancelConsulting(Integer doctorId, Integer consultingId);
}

